home *** CD-ROM | disk | FTP | other *** search
/ Software USA 3 #11 / Software USA Volume 3.11.iso / mac / Games / World Builder / Ray's World Builder Demo / "In The Beginning" Code < prev    next >
Text File  |  1995-11-27  |  11KB  |  137 lines

  1. By Ray R. Dunakin III
  2.  
  3. This is all the code from the first scene of the demo game. It is the title and introduction scene. 
  4.  
  5. All the code is here, exactly as it is in the game. This is followed by a breakdown of the code into sections, with explanations of what each section does and why it is written the way it is.
  6. ---------------------------------------------------
  7.  
  8. IF{CLICK$=NEXT.1}OR{TEXT$=NEXT}THEN     
  9.     IF{E1#<1}THEN                                            
  10.         SOUND{SPACE-TUNE.1}                             
  11.         MOVE{BEGIN.1}TO{STORAGE@}
  12.         MOVE{BEGIN.2}TO{STORAGE@}                    
  13.         MOVE{BEGIN.3}TO{STORAGE@}                    
  14.         MOVE{BEGIN.4}TO{STORAGE@}                    
  15.         SOUND{SPACE-TUNE.1}                              
  16.         MOVE{BEGIN.5}TO{STORAGE@}
  17.         MOVE{BEGIN.6}TO{STORAGE@}
  18.         MOVE{BEGIN.7}TO{STORAGE@}
  19.         MOVE{BEGIN.8}TO{STORAGE@}
  20.         SOUND{SPACE-TWINKLE.1}                         
  21.         SOUND{SILENCE.1}                               
  22.         SOUND{SILENCE.1}                                     
  23.         MOVE{BEGIN.9}TO{STORAGE@}
  24.         PRINT{See that incredibly handsome guy on the left? That's Ray. He has a few words for you.}
  25.         PRINT{RAY: "Actually, I'm not really Ray, I'm just a drawing. And he's not all that good-looking either! Now, you might think I'm a character, but I'm not.}
  26.         PRINT{"I'm an Object. When you open the game file with World Builder, you won't see me in the Characters list. You'll see me listed under Objects.}
  27.         PRINT{"There's a good reason for this. The programmer has little control over Characters. The computer controls them, and they are better at fighting or running than they are at talking.}
  28.         PRINT{"Except for the player Character, you should only use Characters for things that don't do much except fight or run. And even then, Objects are often better."}
  29.         PRINT{----------------------------------------(click NEXT to continue)}
  30.         LET{E1#=1}
  31.     EXIT
  32.     IF{E1#=1}THEN
  33.         PRINT{RAY: "Objects are easy to control. I can't run away when I'm supposed to be talking to you. And everything I say is what the programmer wants me to say.}
  34.         PRINT{"All my actions are in the code for this scene. I'm just a mindless puppet! It's kind of depressing now that I think about it.}
  35.         PRINT{"I can't even wipe this stupid grin off my face unless it's in the code. Hurry up and click the button again, will you? I want to get this over with."}
  36.         PRINT{----------------------------------------(click NEXT to continue)}
  37.         LET{E1#=2}
  38.     EXIT
  39.     IF{E1#=2}THEN
  40.         PRINT{RAY: "Finally! Now I can go back to STORAGE, the place where Objects and Characters are kept when not in use.}
  41.         PRINT{"Play the game, and when you finish you can check out all the code for yourself to see how it all works.}
  42.         PRINT{"Be sure to read the text file that came with this game, it will explain every line of code.}
  43.         PRINT{"I'm outta here, pal!"}
  44.         SOUND{SPACE-TUNE.1}
  45.         MOVE{RAY.1}TO{STORAGE@}
  46.         PRINT{----------------------------------------(click NEXT to continue)}
  47.         LET{E1#=3}
  48.     EXIT
  49.     IF{E1#=3}THEN
  50.         MOVE{NEXT.1}TO{THE GRAND FINALE}        
  51.         SOUND{SPACE-TUNE.1}                                   
  52.         MOVE{PLAYER@}TO{CHART ROOM}              
  53.         LET{E1#=4}                                                     
  54.     EXIT
  55. END
  56.  
  57. ****************end of code******************************
  58.  
  59. The code in this scene is extremely simple, since the only thing the player can do here is click the button. The first time the button is clicked, Variable E1# is less than 1, since it has not been set yet. A sound is played, called SPACE-TUNE.1, then the Objects in the scene are moved to STORAGE@ to create the animation effect. Part way through the animation, the sound is played again. Near the end of the animation, another sound called SPACE-TWINKLE.1} is played. This is followed by a sound called SILENCE.1, which is used to pause the action before the next object is moved. The silence is played twice to provide a longer pause. Then the last object is moved to STORAGE@, and the text is displayed in the text window. The variable is then updated, being set to 1, and the since this part of the code closes with EXIT, the action stops and nothing more happens until the next time the player does something.
  60.  
  61. IF{CLICK$=NEXT.1}OR{TEXT$=NEXT}THEN     <-- This statement checks to see if the player has
  62.                                                                                  has clicked on the "next" button, or
  63.                                                                                  entered the word "next".
  64.  
  65.  
  66.      IF{E1#<1}THEN                                           <--This statement checks variable E1#, which is      
  67.                                                                                                                          used to determine  what action should occur
  68.                                                                                  each time the button is clicked on. As each action
  69.                                                                                  is executed, the variable is incremented upward.
  70.  
  71.         SOUND{SPACE-TUNE.1}                             This action is the title animation sequence.
  72.         MOVE{BEGIN.1}TO{STORAGE@}                  Sounds are played, and the Objects are moved
  73.         MOVE{BEGIN.2}TO{STORAGE@}                  to storage one by one. Each Object is a different 
  74.         MOVE{BEGIN.3}TO{STORAGE@}                  drawing. As one Object is moved, and the next one
  75.         MOVE{BEGIN.4}TO{STORAGE@}                  is revealed, it creates a simple animation effect.
  76.         SOUND{SPACE-TUNE.1}                              
  77.         MOVE{BEGIN.5}TO{STORAGE@}
  78.         MOVE{BEGIN.6}TO{STORAGE@}
  79.         MOVE{BEGIN.7}TO{STORAGE@}
  80.         MOVE{BEGIN.8}TO{STORAGE@}
  81.         SOUND{SPACE-TWINKLE.1}                       A sound that is just a half-second
  82.         SOUND{SILENCE.1}                               <--  of silence is used to momentarily
  83.         SOUND{SILENCE.1}                                      pause the animation. 
  84.         MOVE{BEGIN.9}TO{STORAGE@}
  85.  
  86. >>>>>The next section (below) is the text that is printed in the text window. This is followed by the LET statement, that increases the number of the variable to one. Finally, the entire statement closes with EXIT. This means the program will stop right there, and nothing  more will happen until the next time the player does something.<<<<
  87.  
  88.         PRINT{See that incredibly handsome guy on the left? That's Ray. He has a few words for you.}
  89.         PRINT{RAY: "Actually, I'm not really Ray, I'm just a drawing. And he's not all that good-looking either! Now, you might think I'm a character, but I'm not.}
  90.         PRINT{"I'm an Object. When you open the game file with World Builder, you won't see me in the Characters list. You'll see me listed under Objects.}
  91.         PRINT{"There's a good reason for this. The programmer has little control over Characters. The computer controls them, and they are better at fighting or running than they are at talking.}
  92.         PRINT{"Except for the player Character, you should only use Characters for things that don't do much except fight or run. And even then, Objects are often better."}
  93.         PRINT{----------------------------------------(click NEXT to continue)}
  94.         LET{E1#=1}
  95.     EXIT
  96.  
  97. >>>>>When the player clicks on the NEXT button again, the variable E1# will be one. So the first statement is skipped. This next statement (below) checks to see if the variable equals one, and tells the program what to do if it does. In this case, more text is printed in the text window, and the variable is set to two. Once again, the statement closes with EXIT.<<<<<
  98.  
  99.     IF{E1#=1}THEN
  100.         PRINT{RAY: "Objects are easy to control. I can't run away when I'm supposed to be talking to you. And everything I say is what the programmer wants me to say.}
  101.         PRINT{"All my actions are in the code for this scene. I'm just a mindless puppet! It's kind of depressing now that I think about it.}
  102.         PRINT{"I can't even wipe this stupid grin off my face unless it's in the code. Hurry up and click the button again, will you? I want to get this over with."}
  103.         PRINT{----------------------------------------(click NEXT to continue)}
  104.         LET{E1#=2}
  105.     EXIT
  106.  
  107. >>>>>If the player clicks on the NEXT button, and the variable equals two, the previous statements are skipped. The following statement checks to see if the variable is two, then tells the program what to do if it does. First some text is printed in the text window, then a sound is played and the last Object in the scene, RAY.1, is moved to storage. The variable is incremented up to three, and the statement closes with EXIT.<<<<<
  108.  
  109.  
  110.  IF{E1#=2}THEN
  111.         PRINT{RAY: "Finally! Now I can go back to STORAGE, the place where Objects and Characters are kept when not in use.}
  112.         PRINT{"Play the game, and when you finish you can check out all the code for yourself to see how it all works.}
  113.         PRINT{"Be sure to read the text file that came with this game, it will explain every line of code.}
  114.         PRINT{"I'm outta here, pal!"}
  115.         SOUND{SPACE-TUNE.1}
  116.         MOVE{RAY.1}TO{STORAGE@}
  117.         PRINT{----------------------------------------(click NEXT to continue)}
  118.         LET{E1#=3}
  119.     EXIT
  120.  
  121. >>>>The last statement checks to see if the variable equals 3 when the NEXT button is clicked, and then tells the program what to do. The NEXT button, an Object titled “NEXT.1”, is moved to the last scene in the game, where it will be needed at the end of the game. Then a sound is played, and the player is moved to the second scene of the game, titled “Chart Room.” If the two scenes were next to each other it might not be necessary to use code to move the player there. But in this case the scenes are not next to each other. Besides, we don’t want the player to be able to leave the title scene until he has read all of the introductory text.<<<<
  122.  
  123.     IF{E1#=3}THEN
  124.         MOVE{NEXT.1}TO{THE GRAND FINALE}        
  125.         SOUND{SPACE-TUNE.1}                                    
  126.         MOVE{PLAYER@}TO{CHART ROOM}              
  127.     EXIT
  128. END
  129.  
  130. >>>Notice how each time the player clicks the button (called NEXT.1} or enters the word "next," there is a series of IF/THEN statements that check to see what number is contained in variable E1#. If E1# is less than one, then the first statement is executed. If it equals one, then the second statement is executed, and so on.<<<
  131.  
  132. Just in case the player tries to attack, the statement below tests for entry of any “attack” verbs, and prints a response:
  133.  
  134. IF{TEXT$=SHOOT}OR{TEXT$=HIT}OR{TEXT$=FIRE}OR{TEXT$=SWING}OR{TEXT$=THROW}THEN
  135.     PRINT{..................................}
  136.     PRINT{RAY: “Hey, I control this game, pal! You can’t attack me!”}
  137. EXIT